#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

int g_value = 100;  // 全局变量定义 

int main() 
{
    printf("父进程 PID:%d PPID:%d\n", getpid(), getppid());  // 获取进程信息 

    pid_t id = fork();  // 创建子进程 
    if (id < 0) return -1;  // 错误处理 

    if (id == 0) 
		{
        // 子进程逻辑
        while(1) 
				{
            printf("子进程 PID:%d PPID:%d g_value:%d 地址:%p\n",getpid(), getppid(), g_value++, &g_value);  // 修改变量 
            sleep(1);  // 延时控制 
        }
    } 
		else 
		{
      while(1)
      {
        // 父进程逻辑
        printf("父进程 PID:%d PPID:%d g_value:%d 地址:%p\n",getpid(), getppid(), g_value, &g_value);  // 保持原值 
        sleep(1);
      }
    }
    return 0;
}

